﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CLab.Base;
using CLab.Common.Constantes;
using CLab.Common.Objects;
using CLab.Common.View.Utils.Extensions;
using System.Collections;
using System.Data;

namespace CLab.PagAdminLab
{
    public partial class CatCampoEstudioRegistro : PageBase
    {
        #region Eventos

        protected void Page_Init(object sender, EventArgs e)
        {
            IdItem = 7;
        }
        
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    PreparaPagina();
                    LlenaCombos();
                }

            }
            catch(Exception ex) 
            {
                Master.alert(ex.Message);
            }
            
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                EstudioServiceReference.EstudioServiceClient servicio = new EstudioServiceReference.EstudioServiceClient();
                EstudioServiceReference.Campo obj = new EstudioServiceReference.Campo();
                obj.IdLaboratorio = SessionLaboratorio.IdLaboratorio;
                obj.NombreCampo = txtNombreCampo.Text.Trim();
                obj.IdTipoCampo =  Common.Util.Convert.ToInt(ddlTipoCampo.SelectedValue);
                obj.EsRequerido = ChkEsRequerido.Checked ? 1 : 0;
                obj.Unidad = txtUnidad.Text.Trim();
                obj.IpMod = Request.UserHostAddress;
                obj.IdUsuarioMod = SessionUsuario.IdUsuario;
                obj.IdEstudio = Common.Util.Convert.ToInt(ViewParametros.Find(delegate(Parametro p) { return p.Nombre == "IdEstudio"; }).Valor);
                hdnIdCampo.Value = servicio.RegistraCampo(obj).ToString();
                Master.alertExito();
            }
            catch (Exception ex)
            {
                Master.alert(ex.Message);
            }
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            Nuevo();
        }

        #endregion 
        
        #region Métodos

        private void LlenaCombos()
        {
            ddlTipoCampo.ObtenTipoCampo();
        }

        private void PreparaPagina()
        {
            txtNombreCampo.EnabledValidator = true;
            txtNombreCampo.MaxLength = 1000;
            Master.TituloPagina = "Registrar campo";
            if (getParameter("IdEstudio") == null)
            {
                Response.Redirect("CatCampoEstudio.aspx", false);
            }
        }

        private void Nuevo()
        {
            txtNombreCampo.Text = "";
            ddlTipoCampo.SelectedIndex = -1;
            ChkEsRequerido.Checked = false;
            txtUnidad.Text = "";
            hdnIdCampo.Value = "";
            SetFocus(txtNombreCampo.ControlTextBox.ClientID);
        }

        private void ObtenInfo(object IdCampoEstudio)
        {
            ArrayList parametros = new  ArrayList();
            ConsultaServiceReference.ConsultaServiceClient servicio = new ConsultaServiceReference.ConsultaServiceClient();

            //Parámetros
            parametros.Add(CreaParametroConsulta("@pnIdLaboratorio", CLab.Common.Util.Convert.ToNInt(SessionLaboratorio.IdLaboratorio), ConsultaServiceReference.Parameter.vEnumType.Int));
            parametros.Add(CreaParametroConsulta("@pnIdCampoEstudio", CLab.Common.Util.Convert.ToNInt(IdCampoEstudio), ConsultaServiceReference.Parameter.vEnumType.Int));
            parametros.Add(CreaParametroConsulta("@psNombreCampoEstudio", null, ConsultaServiceReference.Parameter.vEnumType.VarChar));
            ConsultaServiceReference.Parameter [] prms = new ConsultaServiceReference.Parameter[parametros.Count];
         
            //Ejectuta la consulta
            ////DataSet ds = servicio.EjecutaConsultaConParametros('spObtenCampos', prms);
           // txtNombreCampo.Text = 
        }

        #endregion
    }
}